home *** CD-ROM | disk | FTP | other *** search
/ Macwelt 1 / Macwelt DVD 1.toast / Software für Mac-OS X / Entwickler-Tools / netbeans / modules / ext / djava.jar / koala / dynamicjava / classinfo / JavaClassInfo.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-03-14  |  4.3 KB  |  170 lines

  1. package koala.dynamicjava.classinfo;
  2.  
  3. import java.lang.reflect.Array;
  4. import java.lang.reflect.Constructor;
  5. import java.lang.reflect.Field;
  6. import java.lang.reflect.Method;
  7.  
  8. public class JavaClassInfo implements ClassInfo {
  9.    public static final JavaClassInfo BOOLEAN;
  10.    public static final JavaClassInfo INT;
  11.    public static final JavaClassInfo LONG;
  12.    public static final JavaClassInfo FLOAT;
  13.    public static final JavaClassInfo DOUBLE;
  14.    public static final JavaClassInfo STRING;
  15.    public static final JavaClassInfo CLASS;
  16.    private Class javaClass;
  17.    // $FF: synthetic field
  18.    private static Class class$Ljava$lang$String;
  19.    // $FF: synthetic field
  20.    private static Class class$Ljava$lang$Class;
  21.  
  22.    public Class getJavaClass() {
  23.       return this.javaClass;
  24.    }
  25.  
  26.    public boolean isCompilable() {
  27.       return false;
  28.    }
  29.  
  30.    public void setCompilable(boolean var1) {
  31.       throw new IllegalStateException();
  32.    }
  33.  
  34.    public ClassInfo getDeclaringClass() {
  35.       Class var1 = this.javaClass.getDeclaringClass();
  36.       return var1 == null ? null : new JavaClassInfo(var1);
  37.    }
  38.  
  39.    public ClassInfo getAnonymousDeclaringClass() {
  40.       return null;
  41.    }
  42.  
  43.    public int getModifiers() {
  44.       return this.javaClass.getModifiers();
  45.    }
  46.  
  47.    public String getName() {
  48.       return this.javaClass.getName();
  49.    }
  50.  
  51.    public ClassInfo getSuperclass() {
  52.       Class var1 = this.javaClass.getSuperclass();
  53.       return var1 == null ? null : new JavaClassInfo(var1);
  54.    }
  55.  
  56.    public ClassInfo[] getInterfaces() {
  57.       Class[] var1 = this.javaClass.getInterfaces();
  58.       ClassInfo[] var2 = new ClassInfo[var1.length];
  59.  
  60.       for(int var3 = 0; var3 < var1.length; ++var3) {
  61.          var2[var3] = new JavaClassInfo(var1[var3]);
  62.       }
  63.  
  64.       return var2;
  65.    }
  66.  
  67.    public FieldInfo[] getFields() {
  68.       Field[] var1 = this.javaClass.getDeclaredFields();
  69.       FieldInfo[] var2 = new FieldInfo[var1.length];
  70.  
  71.       for(int var3 = 0; var3 < var1.length; ++var3) {
  72.          var2[var3] = new JavaFieldInfo(var1[var3]);
  73.       }
  74.  
  75.       return var2;
  76.    }
  77.  
  78.    public ConstructorInfo[] getConstructors() {
  79.       Constructor[] var1 = this.javaClass.getDeclaredConstructors();
  80.       ConstructorInfo[] var2 = new ConstructorInfo[var1.length];
  81.  
  82.       for(int var3 = 0; var3 < var1.length; ++var3) {
  83.          var2[var3] = new JavaConstructorInfo(var1[var3]);
  84.       }
  85.  
  86.       return var2;
  87.    }
  88.  
  89.    public MethodInfo[] getMethods() {
  90.       Method[] var1 = this.javaClass.getDeclaredMethods();
  91.       MethodInfo[] var2 = new MethodInfo[var1.length];
  92.  
  93.       for(int var3 = 0; var3 < var1.length; ++var3) {
  94.          var2[var3] = new JavaMethodInfo(var1[var3]);
  95.       }
  96.  
  97.       return var2;
  98.    }
  99.  
  100.    public ClassInfo[] getDeclaredClasses() {
  101.       Class[] var1 = this.javaClass.getDeclaredClasses();
  102.       ClassInfo[] var2 = new ClassInfo[var1.length];
  103.  
  104.       for(int var3 = 0; var3 < var1.length; ++var3) {
  105.          var2[var3] = new JavaClassInfo(var1[var3]);
  106.       }
  107.  
  108.       return var2;
  109.    }
  110.  
  111.    public ClassInfo getArrayType() {
  112.       return new JavaClassInfo(this);
  113.    }
  114.  
  115.    public boolean equals(Object var1) {
  116.       return var1 != null && var1 instanceof ClassInfo ? this.javaClass.getName().equals(((ClassInfo)var1).getName()) : false;
  117.    }
  118.  
  119.    public boolean isInterface() {
  120.       return this.javaClass.isInterface();
  121.    }
  122.  
  123.    public boolean isArray() {
  124.       return this.javaClass.isArray();
  125.    }
  126.  
  127.    public boolean isPrimitive() {
  128.       return this.javaClass.isPrimitive();
  129.    }
  130.  
  131.    public ClassInfo getComponentType() {
  132.       if (!this.isArray()) {
  133.          throw new IllegalStateException();
  134.       } else {
  135.          return new JavaClassInfo(this.javaClass.getComponentType());
  136.       }
  137.    }
  138.  
  139.    // $FF: synthetic method
  140.    static Class class$(String var0) {
  141.       try {
  142.          return Class.forName(var0);
  143.       } catch (ClassNotFoundException var2) {
  144.          throw new NoClassDefFoundError(((Throwable)var2).getMessage());
  145.       }
  146.    }
  147.  
  148.    public JavaClassInfo(Class var1) {
  149.       if (var1 == null) {
  150.          throw new IllegalArgumentException("c == null");
  151.       } else {
  152.          this.javaClass = var1;
  153.       }
  154.    }
  155.  
  156.    public JavaClassInfo(JavaClassInfo var1) {
  157.       this.javaClass = Array.newInstance(var1.javaClass, 0).getClass();
  158.    }
  159.  
  160.    static {
  161.       BOOLEAN = new JavaClassInfo(Boolean.TYPE);
  162.       INT = new JavaClassInfo(Integer.TYPE);
  163.       LONG = new JavaClassInfo(Long.TYPE);
  164.       FLOAT = new JavaClassInfo(Float.TYPE);
  165.       DOUBLE = new JavaClassInfo(Double.TYPE);
  166.       STRING = new JavaClassInfo(class$Ljava$lang$String != null ? class$Ljava$lang$String : (class$Ljava$lang$String = class$("java.lang.String")));
  167.       CLASS = new JavaClassInfo(class$Ljava$lang$Class != null ? class$Ljava$lang$Class : (class$Ljava$lang$Class = class$("java.lang.Class")));
  168.    }
  169. }
  170.